/**
 * 
 */
package com.rhf.core.db.services;

import java.util.List;

import com.rhf.core.commons.logging.AppLog;
import com.rhf.core.commons.logging.AppLogManager;
import com.rhf.core.db.factories.Factory;
import com.rhf.core.db.interfaces.Utilisateur;
import com.rhf.core.dto.UtilisateurVO;

/**
 * @author fabiensaulnier
 * 
 */
public class UtilisateurService {

	/**
	 * R�cup�re un utilsateur � partir de son login et son mot de passe
	 * 
	 * @param login
	 * @param motDePasse
	 * @return utililisateurVO
	 * @throws Exception
	 */
	public static UtilisateurVO recupererUtilisateur(String login, String motDePasse) throws Exception {

		AppLog appLog = AppLogManager.getDaoLogger();
		UtilisateurVO utilisateurVO = null;

		Utilisateur utilisateur = Factory.getUtilisateurDao();

		if (utilisateur != null) {
			utilisateurVO = utilisateur.recupererUtilisateur(login, motDePasse);
			appLog.debug("Chargement de l'utilisateur :: Login  [" + login + "], Mot de passe [" + motDePasse + "]");
		}

		return utilisateurVO;

	}

	/**
	 * R�cup�re un utilisateur � partir de son identifiant
	 * 
	 * @param utilisateurId
	 * @return utilisateurVO
	 * @throws Exception
	 */
	public static UtilisateurVO recupererUtilisateur(int utilisateurId) throws Exception {

		AppLog appLog = AppLogManager.getDaoLogger();
		UtilisateurVO utilisateurVO = null;

		Utilisateur utilisateur = Factory.getUtilisateurDao();

		if (utilisateur != null) {
			utilisateurVO = utilisateur.recupererUtilisateur(utilisateurId);
			appLog.debug("Chargement de l'utilisateur :: id  [" + utilisateurId + "]");
		}

		return utilisateurVO;

	}

	/**
	 * Modifie un utilisateur
	 * 
	 * @param utilisateurId
	 * @param utilisateurVO
	 * @return 1 si l'utilisateur est modifi�
	 * @throws Exception
	 */
	public static int modifierUtilisateur(UtilisateurVO utilisateurVO) throws Exception {

		AppLog appLog = AppLogManager.getDaoLogger();

		Utilisateur utilisateur = Factory.getUtilisateurDao();

		if (utilisateur != null) {
			appLog.debug("Modification de l'utilisateur [" + utilisateurVO.getUtilisateurId() + "]");
			return utilisateur.modifierUtilisateur(utilisateurVO);
		}

		return 0;

	}

	/**
	 * R�cup�re la liste des utilisateurs
	 * 
	 * @return liste des utilisateurs
	 * @throws Exception
	 */
	public static List<UtilisateurVO> recupererListeUtilisateur() throws Exception {

		AppLog appLog = AppLogManager.getDaoLogger();

		List<UtilisateurVO> list = null;

		Utilisateur utilisateur = Factory.getUtilisateurDao();

		if (utilisateur != null) {
			list = utilisateur.recupererListeUtilisateur();
			appLog.debug("Chargement de la liste des utilisateurs");
		}

		return list;

	}
}
